package com.kjzy.mapper;

import com.kjzy.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

//定义数据访问层(持久层)的实现接口：定义名为 UserMapper 的
//Mapper接口，它的Mapper映射文件为UserMapper.xml。
public interface UserMapper {
    // 为Mapper映射文件中id为findAdmin的SQL片段，定义一个同名
    // 方法：通过用户id和密码，查询user表中的管理员用户。
    // @Param注解，用于将Mapper接口中方法的形参，关联到SQL片段中的输入参数上。
    // 本例中，将方法中userId和password，关联到SQL片段中的#{id}和#{password}上。
    public User findAdmin(@Param("id") Integer userId,
                          @Param("password") String password);

    // 为Mapper映射文件中id为findUserList的SQL片段，定义一个同名
    // 方法：通过用户id、用户名、用户角色、用户状态，多条件查询所有用户信息。
    // 其中，用户id、用户名、用户角色、用户状态的值，封装在参数user对象里。
    public List<User> findUserList(User user);
    //为Mapper映射文件中id为addUser的SQL片段，
    //定义一个同名方法：在user用户表中插入一条用户记录。
    public int addUser(User user);

    //为Mapper映射文件中id为findUserById的SQL片段，
    //定义一个同名方法：根据用户ID查询user表中的用户。
    public User findUserById(int id);

    //为Mapper映射文件中id为updateUserById的SQL片段，
    //定义一个同名方法：(根据用户ID)在User用户表中修改一条用户记录。
    public int updateUserById(User user);

    //为Mapper映射文件中id为deleteUserById的SQL片段，
    //定义一个同名方法：(根据用户ID)在User用户表中删除一条用户记录。
    public int deleteUserById(int id);


}
